/*
 * pruebas_builder.cpp
 *
 *  Created on: Sep 23, 2012
 *      Author: Hernan
 */
#include <iostream>
#include <string>
#include <exception>
#include "yaml/BuilderEscenarioYAML.h"
#include "Dibujante.h"
#include "dominio/Escalera.h"
#include "dominio/Textura.h"
#include "dominio/Juego.h"
#include "dominio/Pantalla.h"
#include "dominio/Nivel.h"
#include "dominio/TipoPersonaje.h"
#include "logger/Logger.h"


int main2(int argc, char* argv[]){


	BuilderEscenarioYAML *builder = new BuilderEscenarioYAML("juego.yaml");

	/*
	if (!builder->crearTiposPersonajes()){
		cout << "Error en el archivo, no se pudo crear" << endl;
		return 0;
	}

	builder->crearPersonajes();

	 */
	builder->crearJuego();

	cout <<"Arranco a mostrar" << endl;
	list<Personaje*> listaPersonajes = builder->getPersonajes();
	list<Personaje*>::iterator it= listaPersonajes.begin();
		while( it!= listaPersonajes.end()){
			cout<<(*it)->getAlto()<<";"<<(*it)->getAncho()<<endl;
			cout<<"("<<(*it)->getPosicionX()<<","<<(*it)->getPosicionY()<<")"<<endl;
			cout<<"animacion actual:"<<(*it)->getAnimacionActual()<<endl;
			cout<<"nombre personaje:"<<(*it)->getTipoPersonaje()->getNombre()<<endl;
			map<string,Animacion*>::iterator it2= (*it)->getTipoPersonaje()->getAnimaciones().begin();
			cout<<"animaciones:"<<endl;
			while (it2!=(*it)->getTipoPersonaje()->getAnimaciones().end()){
				cout<<(*it2).first<<endl;
				it2++;
			}
			it++;
			cout<<"-----------------"<<endl;
		}

	cout<<"|*************************************************************************|"<<endl;

	//builder->inicializarDatosGraficos();
	cout<<"pantalla:"<<endl;
	cout<<"ancho pantalla:"<<builder->getPantalla()->getAncho()<<endl;
	cout<<"alto pantalla:"<<builder->getPantalla()->getAlto()<<endl;
	cout<<"posicion:"<<builder->getPantalla()->getPosicion()<<endl;


	map<string,string> map= builder->getParametros();

	cout<<"parametros:"<<endl;
	cout<<map.find("margen_scroll")->first<<" ; "<<map.find("margen_scroll")->second<<endl;
	cout<<map.find("vel_personaje")->first<<" ; "<<map.find("vel_personaje")->second<<endl;

	cout<<"|*************************************************************************|"<<endl;
	//builder->crearEscaleras();

	cout<<"Escaleras:"<<endl;
	list<Escalera*> listaEscaleras = builder->getEscaleras();

	list<Escalera*>::iterator it2= listaEscaleras.begin();
	while(it2!=listaEscaleras.end()){
		cout<<(*it2)->getAlto()<<";"<<(*it2)->getAncho()<<endl;
		cout<<"("<<(*it2)->getPosicionX()<<","<<(*it2)->getPosicionY()<<")"<<endl;
		cout<<(*it2)->getTextura()->getNombre()<<endl;
		cout<<"-------------------"<<endl;
		it2++;
	}

	cout<<"|*************************************************************************|"<<endl;

	//builder->crearPlataformas();

		cout<<"Plataformas:"<<endl;
		list<Plataforma*> listaPlataformas = builder->getPlataformas();

		list<Plataforma*>::iterator it3= listaPlataformas.begin();
		while(it3!=listaPlataformas.end()){
			cout<<(*it3)->getAlto()<<";"<<(*it3)->getAncho()<<endl;
			cout<<"("<<(*it3)->getPosicionX()<<","<<(*it3)->getPosicionY()<<")"<<endl;
			cout<<(*it3)->getTextura()->getNombre()<<endl;
			cout<<"-------------------"<<endl;
			it3++;
		}
	cout<<"|*************************************************************************|"<<endl;

	cout<<"ancho nivel:"<<	builder->getJuego()->getNivel()->getAncho()<<endl;
	cout<<"alto nivel:"<<	builder->getJuego()->getNivel()->getAlto()<<endl;
	cout<<"alto pantalla:"<<	builder->getJuego()->getPantalla()->getAlto()<<endl;

	return 0;

}




